package com.xbongbong.saas.constant.callcenter;

/**
 * 度言相关静态资源
 *
 * @author 章华隽
 * @mail nefeed@163.com
 * @time 2017-10-20 13:57
 */
public class DuYanConstant {

    public static final String MODULE_NAME = "constant.duYan.module_name";
    /**
     * 合作伙伴Api_Key
     */
    public static final String API_KEY_PARTNER = "9zbhn2SiTz68ekX6TFrwFrfdESUcWqdk";
    /**
     * 逍邦网络企业Api_Key
     */
    public static final String API_KEY_XBB = "aqSUgHmykXlGwKDZNFqG8MbsbizFVACk";

    /**
     * 度言返回结果的status的key
     */
    public static final String API_KEY_STATUS = "status";
    /**
     * 度言返回的错误信息
     */
    public static final String API_KEY_MESSAGE = "message";
    /**
     * 度言返回结果的内容数据的key
     */
    public static final String API_KEY_DATA = "data";
    /**
     * 度言返回结果的移动端拨打号码的key
     */
    public static final String API_KEY_DATA_MOBILE_TARGET = "mobile_target";
    /**
     * 度言返回结果成功的status
     */
    public static final int API_SUCCESS_STATUS = 1;
    /**
     * 度言Token有效期（单位：秒）
     * 少计800秒，避免延时过程中失效
     */
    public static final int TOKEN_DURATION_SECONDS = 28000;
    /**
     * 查询通话记录的最大查询区间间隔，一个月，单位：ms
     */
    public static final long CALL_LOG_MAX_INTERVAL = 2590000000L;
    /**
     * 团队号码可见范围等级：全员可见
     */
    public static final String PHONE_VISIBILITY_PUBLIC = "PUBLIC";
    /**
     * 团队号码可见范围等级：全员隐藏
     */
    public static final String PHONE_VISIBILITY_PRIVATE = "PRIVATE";
    /**
     * 团队号码可见范围等级：全员可见
     */
    public static final String PHONE_VISIBILITY_MEMBER_PRIVATE = "MEMBER_PRIVATE";
    /**
     * 通话记录电话类别：呼入
     */
    public static final String CALL_LOG_TYPE_INBOUND = "INBOUND";
    /**
     * 通话记录电话类别：呼出
     */
    public static final String CALL_LOG_TYPE_OUTBOUND = "OUTBOUND";
    /**
     * 通话记录呼出结果：成功
     */
    public static final String CALL_LOG_RESULT_SUCCESS = "SUCCESS";
    /**
     * 通话记录呼出结果：失败
     */
    public static final String CALL_LOG_RESULT_FAIL = "FAIL";
    /**
     * 通话录音翻译结果：成功
     */
    public static final String CALL_TRANSCRIPTION_STATUS_DONE = "DONE";
    /**
     * 通话录音翻译结果：翻译中
     */
    public static final String CALL_TRANSCRIPTION_STATUS_TRANSCRIBING = "TRANSCRIBING";
    /**
     * 度言平台组织架构层级上限
     */
    public static final Integer DEPARTMENT_ROUTE_LIMIT = 15;

    /**
     * 度言API的请求地址
     * 返回形式为 {"status": 1, "data": []或{}}
     * 错误的形式为 {"status": 0, "message": "对应错误信息", "error_code": "ERR_1000"}
     * status 1: 请求成功， 0: 请求失败，-1: apikey不合法
     * error_code 错误码，例如ERR_1000，具体信息参照返回值说明 https://open.duyansoft.com/open/code
     */
    public static final String BASE_URL = "https://open.duyansoft.com/api/v1";

    /**
     * 创建企业 API POST
     *
     * @param apikey 必填 partner的apikey，唯一标识，在管理控制台获取
     * @param name 必填 企业全称，与工商注册名一致
     * @param alias 必填 企业别名(3~8个字，必须含有中文字符)
     * @param register_id 必填 统一信用代码 91330110011111111X
     * @param wrap_up 非必填 传"NEVER"在通话结束后不会显示备注输入
     * @return {"org_id": 100058, "name": "杭州度言软件", "alias": "度言软件", "register_id": "91330110011111111X"}
     * 企业编号  org_id  Long
     * 企业名字	name  String
     * 企业别名  alias  String
     * 统一信用代码  register_id  String
     * 企业信息 参考 DuYanOrganizationPojo
     */
    public static final String API_ORGANIZATION_REGISTER = "/org";

    /**
     * 获取企业apikey API GET
     *
     * @param apikey 必填 partner的apikey，唯一标识，在管理控制台获取
     * @param org_id 必填 企业编号
     * @return {"apikey": "RVjkQ54b0watuplzRFG4xIQOCawj9bKV"}
     * 企业的apikey apikey String
     */
    public static final String API_GET_ORGANIZATION_API_KEY = "/org/apikey";

    /**
     * 获取企业信息 API GET
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @return {"org_id": 100058,"name": "杭州度言软件", "alias": "度言软件","register_id": "91330110011111111X"}
     * 企业信息 参考 DuYanOrganizationPojo
     */
    public static final String API_ORGANIZATION_INFO = "/org";


    /**
     * 修改企业号码可见 API POST
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param org_id 必填 企业的org_id，企业id
     * @return {"status": 1,"message": "set [100065] OrgPhoneProtection type as [PUBLIC] successfully"}
     * 企业信息 参考 DuYanOrganizationPojo
     */
    public static final String API_ORGANIZATION_SHOW_PHONE = "/org/org_phone_protection";

    /**
     * 团队列表 API GET
     *
     * @param apikey 企业的apikey，可通过获取企业apikey接口获取
     * @return [{"id": 10000120, "name": "大海", "remark": "度言开发团队"}]
     * 团队编号	id
     * 团队名字	name
     * 团队备注  remark
     */
    public static final String API_TEAM_LIST = "/team";

    /**
     * 创建团队 API POST
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param name 必填 团队名称
     * @param phone_visibility 必填 号码是否对团队成员隐藏:PUBLIC:公开,PRIVATE:隐藏,MEMBER_PRIVATE:对团队管理员公开,普通坐席隐藏
     * @param parent_id 非必填 如果当前团队是团队A的子团队,传团队A的team_id。ps:团队架构最多支持3层
     * @param remark 非必填 企业备注
     * @return {"phone_visibility": "PUBLIC", "name": "度言开发团队", "remark": "度言开发", "team_id": 10000066, "org_id": 1000123,"parent_id":0}
     * 团队编号	team_id
     * 团队名字	name
     * 团队备注  remark
     * 所属企业编号  org_id
     * 号码隐藏值  phone_visibility
     * 父团队编号  parent_id
     */
    public static final String API_TEAM_REGISTER = "/team";

    /**
     * 修改团队 API POST
     * 缺省 team_id
     *
     * @param apikey 必填 企业的apikey，可通过获取企业apikey接口获取
     * @param team_id 必填 要修改的团队的team_id
     * @param name 必填 团队名称
     * @param phone_visibility 必填 号码是否对团队成员隐藏:PUBLIC:公开,PRIVATE:隐藏,MEMBER_PRIVATE:对团队管理员公开,普通坐席隐藏
     * @param parent_id 非必填 如果当前团队是团队A的子团队,传团队A的team_id。ps:团队架构最多支持3层
     * @param remark 非必填 企业备注
     * @return {"phone_visibility": "PUBLIC", "name": "度言开发团队", "remark": "度言开发", "team_id": 10000066, "org_id": 1000123,}
     * 团队编号	team_id
     * 团队名字	name
     * 团队备注  remark
     * 所属企业编号  org_id
     * 号码隐藏值  phone_visibility
     * 父团队编号  parent_id
     */
    public static final String API_TEAM_UPDATE = "/team/%s";

    /**
     * 团队详情 API GET
     *
     * @param apikey 企业的apikey，可通过获取企业apikey接口获取
     * @param team_id 团队id
     * @return {"phone_visibility": "PUBLIC","name": "度言开发团队","remark": "度言开发","team_id": 10000066,"org_id": 1000123,"phoneline":true}
     * 团队编号	team_id
     * 企业编号	org_id
     * 团队名字	name
     * 团队可见范围  phone_visibility 号码是否对团队成员隐藏:PUBLIC:公开,PRIVATE:隐藏,MEMBER_PRIVATE:对团队管理员公开,普通坐席隐藏
     * 团队是否有线路  phoneline
     * 团队备注  remark
     */
    public static final String API_TEAM_DETAIL = "/team/%s";

    /**
     * 坐席列表 API GET
     *
     * @param apikey 企业的apikey，可通过获取企业apikey接口获取
     * @param team_id 团队id，获取方式参照团队API
     * @return [{"id": 10000120, "name": "大海", "title": "客服", "is_supervisor": true}]
     * 坐席编号	id
     * 坐席名字	name
     * 坐席职位	title
     * 坐席身份	is_supervisor （true: 团队管理员；false: 普通坐席）
     */
    public static final String API_AGENT_LIST = "/agent";

    /**
     * 坐席登录CTI API POST
     * 该接口用于后台调用获取登录cti的权限，返回的account_id和token的值用于前端跳转至https://cti.duyansoft.com?account_id=***&token=***。
     *
     * @param apikey 企业的apikey，可通过获取企业apikey接口获取
     * @param account_id 团队id，员工的account_id
     * @return {"account_id": 10000188, "token": "78ad1039-d8bb-4503-b1a8-a225b7d381bc"}
     * 员工编号 account_id
     * Token token 用于前端登录到cti的url的token的值
     */
    public static final String API_LOGIN_CTI = "/account/login/cti";

    /**
     * 管理员登录CFG API POST
     * 该接口用于后台调用获取登录cfg的权限，返回的account_id和token的值用于前端跳转至https://cfg.duyansoft.com?account_id=***&token=***。
     *
     * @param apikey 企业的apikey，可通过获取企业apikey接口获取
     * @param account_id 团队id，员工的account_id
     * @return {"account_id": 10000185, "token": "e711b70d-9529-48a6-b4d7-c78de6f7e911"}
     * 员工编号 account_id
     * Token token 用于前端登录到cfg的url的token的值
     */
    public static final String API_ADMIN_LOGIN_CFG = "/account/login/cfg";

}
